import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un boton que se encarga de crear jugadores y
 * regresarlos a quien los solicite.
 * 
 * @author Miguel Martinez Aguilar
 * @version 16 de Mayo del 2013
 */
public class BotonJug extends Boton
{
    // Declaracion de variables de instancia
    private MenuJugador menu;// es el menu de jugadores.
    private int tipo;// es el tipo de boton.
    private int izder;// define la ubicacion (izquierda o derecha) de este boton.

    /**
     * Este es el metodo constructor del BotonJug.
     * @param imagen: el nombre principal de las imagenes que este boton usara.
     * @param menu: el menu de jugadores al que hara referencia este boton.
     * @param tipo: un numero que representa el tipo de boton que sera.
     * @param izder: boleano que indica a este boton en donde creara el jugador (izquierda o derecha).
     */
    public BotonJug(String imagen, MenuJugador menu, int tipo, int izder)
    {
        super(imagen + "0.png",imagen + "1.png",imagen + "2.png");
        this.setImage(img[0]);
        this.menu = menu;
        this.tipo = tipo;
        this.izder = izder;
    }
    
    /**
     * Este metodo crea un jugador de acuerdo al tipo de boton.
     */
    public void ejecuta()
    {
        if(tipo == 0)menu.agregaJugador(izder,this.usuario());
        if(tipo == 1)menu.agregaJugador(izder,this.primero());
        if(tipo == 2)menu.agregaJugador(izder,this.segundo());
        if(tipo == 3)menu.agregaJugador(izder,this.tercero());
    } 
    
    /**
     * Este metodo crea un jugador usuario y lo regresa.
     */
    public Jugador usuario()
    {
        return new Usuario("usuario");
    } 
    
    /**
     * Este metodo crea un jugador Primero y lo regresa.
     */
    public Jugador primero()
    {
        return new Primero();
    } 
    
    /**
     * Este metodo crea un jugador Segundo y lo regresa.
     */
    public Jugador segundo()
    {
        return new Segundo();
    } 
    
    /**
     * Este metodo crea un jugador Tercero y lo regresa.
     */
    public Jugador tercero()
    {
        return new Tercero();
    } 
}
